An embodiment of the invention relates to a method for implementing a service oriented business application on a computer system. Specifically, an embodiment of the invention relates to a computer implemented method and system for running a plurality of business processes, wherein process data are handled in data objects by one or more service oriented business applications run on a computer. An embodiment of the invention further relates to a computer system for running a plurality of business processes, a computer program product and an article of manufacture with a computer usable medium.
Service-oriented business applications running on programmable devices, such as computers, are known. Service-oriented architectured applications have more flexibility to create an optimized user experience by composing all relevant functions and information in one place across different backends. These applications may aid users of the applications performing their activities within an enterprise. For example, a business application may guide a user through steps of a certain business process in a certain order, e.g. hiring a new employee. For different steps in this process the business application may then provide the user with one or more services at the user interface, such as filling in and submitting a form to a database (e.g. with the new employees name address etc), and ordering items.
It is known to implement a service-oriented business application using a plurality of services. Typically, a service is implemented as a set of procedures or functions hosted on a computer server connected to the computer devices.
A computer device on which the business application is running can request data from the computer server, by submitting a set of parameters to the set of procedures or functions on the server.
It is known to implement such services as Web services which allow a user of a web browser to request XML data from the server by submitting parameters to the server. Web services (sometimes called application services) are services (usually including some combination of programming and data, but possibly including human resources as well) that are made available from a business's Web server for Web users or other Web-connected programs. Web services range from major services like storage management and customer relationship management (CRM) down to much more limited services such as the furnishing of a stock quote and the checking of bids for an auction item.
However, implementing the known service-oriented business applications is a complex task, since by definition web services have no user interface and the context in which multiple services are orchestrated has yet to be defined. Accordingly, complex techniques have to be applied to enable a transfer of data from a first to a second service when the implemented business application is running. The complexity increases disproportionally with the amount of services involved.
Modern business applications will follow a service-oriented architecture in which many enterprise services are exposed as small granular entities. New, so called composite applications are composed by configuring and composing new solutions based on such services. A problem, however, is that these enterprise services are still very system-related and do not directly model reasonable business acts that are meaningful for business experts, who lack expert programming experience. In order to let business experts develop, modify, or extend business solutions, a library with meaningful business actions or process steps is needed that can be configured to higher level processes.
Another problem is that the same business service may be used at different screens of the applications, or even in completely different contexts like as a step or as a related action within a workflow. From the engineering point of view it is desirable to have one implementation even for services that come with a user interface and re-use the same component in all situations.